
/**
  * js计算字符的长度，匹配双字节字符(包括汉字)，
  */
function myLen(str) {
  var len = str.length;
  var relen = 0;

  for (var i = 0; i < len; i++) {
    if (str.charCodeAt(i) < 27 || str.charCodeAt(i) > 126) {
      relen += 2; //中文展示按照2个英文长度占位
    } else {
      relen++;
    }
  }
  return relen;
}

/* 双字节字符 处理截取 */
function getCustomStr(str, sliceLen) {
  let len = 0 // 获取计算双字节字符串后的长度
  let correctLen = 0 // 实际应当截取 长度
  let sliceStr = '' // 初次截取后的字符串
  let extraLen = 0 // 实际偏差的量

  if (sliceLen < 0) { // 从后往前截取
    sliceStr = str.slice(sliceLen) || ''
    len = myLen(sliceStr)
    extraLen = Math.floor((len + sliceLen) / 2)
    correctLen = sliceLen + extraLen
    return str.slice(correctLen)
  } else {
    sliceStr = str.slice(0, sliceLen) || '' // 截取后的字符串
    len = myLen(sliceStr)
    extraLen = Math.floor((len - sliceLen) / 2)
    correctLen = sliceLen - extraLen
    return str.slice(0, correctLen)
  }
}